package com.ruoyi.depot.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购入库单对象 tb_procured_storage
 * 
 * @author ruoyi
 * @date 2023-12-13
 */
public class ProcuredStorage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 入库id */
    private String storageId;

    /** 入库单号 */
    @Excel(name = "入库单号")
    private String storageNumber;

    /** 关联质检id */
    @Excel(name = "质检id")
    private String inspectionId;

    /** 关联采购订单id(tb_procured_orders) */
    @Excel(name = "关联采购订单id(tb_procured_orders)")
    private Long ordersId;

    /** 仓库id */
    @Excel(name = "仓库id")
    private Long warehouseId;

    /** 入库人 */
    @Excel(name = "入库人")
    private String depositor;

    /** 入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inboundTime;

    /** 入库数量 */
    @Excel(name = "入库数量")
    private Integer inboundNumber;

    /** 入库数量 */
    @Excel(name = "总良品量")
    private Integer totalPassQuantity;

    /** 入库数量 */
    @Excel(name = "总次品量")
    private Integer totalDefectiveQuantity;

    /** 入库状态 */
    @Excel(name = "入库状态")
    private Integer inboundStatus;

    /** 入库类型 */
    @Excel(name = "入库类型")
    private Integer storageType;


    /** 入库备注 */
    private String storageRemark;

    /** 删除状态 0存在1删除 */
    private Integer deleteStatus;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 仓库名称 */
    private String warehouseName;

    /** 采购订单号 */
    private String ordersNumber;

    /** 采购订单下单人 */
    private String approver;

    /** 采购订单下单时间 */
    private Date approvedTime;

    /** 供应商编号 */
    private String vendorNumber;

    /** 供应商名称 */
    private String accountHolder;

    /** 入库产品信息 */
    private List<InboundProducts> inboundProductsList;

    /** 入库产品详细 */
    private List<ProcuredStorageDetail> procuredStorageDetails;

    public List<ProcuredStorageDetail> getProcuredStorageDetails() {
        return procuredStorageDetails;
    }

    public void setProcuredStorageDetails(List<ProcuredStorageDetail> procuredStorageDetails) {
        this.procuredStorageDetails = procuredStorageDetails;
    }

    public String getOrdersNumber() {
        return ordersNumber;
    }

    public void setOrdersNumber(String ordersNumber) {
        this.ordersNumber = ordersNumber;
    }

    public String getApprover() {
        return approver;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }

    public String getInspectionId() {
        return inspectionId;
    }

    public void setInspectionId(String inspectionId) {
        this.inspectionId = inspectionId;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Integer getStorageType() {
        return storageType;
    }

    @Override
    public Date getUpdateTime() {
        return updateTime;
    }

    @Override
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public void setStorageType(Integer storageType) {
        this.storageType = storageType;
    }

    public Date getApprovedTime() {
        return approvedTime;
    }

    public void setApprovedTime(Date approvedTime) {
        this.approvedTime = approvedTime;
    }

    public String getVendorNumber() {
        return vendorNumber;
    }

    public void setVendorNumber(String vendorNumber) {
        this.vendorNumber = vendorNumber;
    }

    public String getAccountHolder() {
        return accountHolder;
    }

    public void setAccountHolder(String accountHolder) {
        this.accountHolder = accountHolder;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getStorageRemark() {
        return storageRemark;
    }

    public void setStorageRemark(String storageRemark) {
        this.storageRemark = storageRemark;
    }

    public String getStorageId() {
        return storageId;
    }

    public void setStorageId(String storageId) {
        this.storageId = storageId;
    }

    public void setStorageNumber(String storageNumber)
    {
        this.storageNumber = storageNumber;
    }

    public String getStorageNumber() 
    {
        return storageNumber;
    }
    public void setOrdersId(Long ordersId) 
    {
        this.ordersId = ordersId;
    }

    public Long getOrdersId() 
    {
        return ordersId;
    }
    public void setDepositor(String depositor) 
    {
        this.depositor = depositor;
    }

    public String getDepositor() 
    {
        return depositor;
    }
    public void setInboundTime(Date inboundTime) 
    {
        this.inboundTime = inboundTime;
    }

    public Date getInboundTime() 
    {
        return inboundTime;
    }


    public Integer getInboundStatus() {
        return inboundStatus;
    }

    public void setInboundStatus(Integer inboundStatus) {
        this.inboundStatus = inboundStatus;
    }

    public Integer getDeleteStatus() {
        return deleteStatus;
    }

    public void setDeleteStatus(Integer deleteStatus) {
        this.deleteStatus = deleteStatus;
    }

    public void setAddTime(Date addTime)
    {
        this.addTime = addTime;
    }

    public Date getAddTime() 
    {
        return addTime;
    }

    public Integer getInboundNumber() {
        return inboundNumber;
    }

    public void setInboundNumber(Integer inboundNumber) {
        this.inboundNumber = inboundNumber;
    }

    public Integer getTotalPassQuantity() {
        return totalPassQuantity;
    }

    public void setTotalPassQuantity(Integer totalPassQuantity) {
        this.totalPassQuantity = totalPassQuantity;
    }

    public Integer getTotalDefectiveQuantity() {
        return totalDefectiveQuantity;
    }

    public void setTotalDefectiveQuantity(Integer totalDefectiveQuantity) {
        this.totalDefectiveQuantity = totalDefectiveQuantity;
    }

    public List<InboundProducts> getInboundProductsList()
    {
        return inboundProductsList;
    }

    public void setInboundProductsList(List<InboundProducts> inboundProductsList)
    {
        this.inboundProductsList = inboundProductsList;
    }

    @Override
    public String toString() {
        return "ProcuredStorage{" +
                "storageId='" + storageId + '\'' +
                ", storageNumber='" + storageNumber + '\'' +
                ", inspectionId='" + inspectionId + '\'' +
                ", ordersId=" + ordersId +
                ", warehouseId=" + warehouseId +
                ", depositor='" + depositor + '\'' +
                ", inboundTime=" + inboundTime +
                ", inboundNumber=" + inboundNumber +
                ", totalPassQuantity=" + totalPassQuantity +
                ", totalDefectiveQuantity=" + totalDefectiveQuantity +
                ", inboundStatus=" + inboundStatus +
                ", storageType=" + storageType +
                ", storageRemark='" + storageRemark + '\'' +
                ", deleteStatus=" + deleteStatus +
                ", addTime=" + addTime +
                ", warehouseName='" + warehouseName + '\'' +
                ", ordersNumber='" + ordersNumber + '\'' +
                ", approver='" + approver + '\'' +
                ", approvedTime=" + approvedTime +
                ", vendorNumber='" + vendorNumber + '\'' +
                ", accountHolder='" + accountHolder + '\'' +
                ", inboundProductsList=" + inboundProductsList +
                '}';
    }
}
